using System.Collections.Generic;
using Framework.Library.Data.DAL;

namespace Framework.Library.Data.IDAO
{
    public interface IDAOEntity
    {
        int Insert<TEntityType>(TEntityType entity) where TEntityType : DALEntity;
        void Update<TEntityType>(TEntityType entity) where TEntityType : DALEntity;
        void UpdateCompound<TEntityType>(TEntityType entity) where TEntityType : DALEntity;
        void Delete<TEntityType>(TEntityType entity) where TEntityType : DALEntity;
        TEntityType GetInfo<TEntityType>(TEntityType entity) where TEntityType : DALEntity;
        List<TEntityType> GetList<TEntityType>(TEntityType entity) where TEntityType : DALEntity;
        List<TEntityType> GetList<TEntityType>(TEntityType entity, int pageIndex, int pageSize) where TEntityType : DALEntity;
    }
}